This invention relates to an apparatus and process for configuring a product over a computer network, and more particularly to an apparatus and process for efficiently configuring a product having multiple possible configurations over a computer network.
Although at first a mere curiosity used by scientific researchers, the Internet has come to be a significant factor in everyday life. Along with the increasingly common use of the Internet for entertainment and communication has come a sizeable increase in the use of the Internet in electronic commerce. At first, e-commerce consisted mainly of merchants selling standardized products such as videos, CD""s and books. But more recently, merchants have started using the Internet to sell goods that are highly customized, such as automobiles, computers and electronics. For any one of such goods there are many options from which an Internet user can choose to configure their own customized product. Although great for the user, this customization process poses problems for the merchant because it requires a fair amount of computational power for each transaction. As more people seek to buy these customized products over the Internet, the demand results in increased load on the merchant""s server. The increased load on the server in turn degrades the user""s response time and may eventually overwhelm the server and lead to system failures. Thus, there is a premium on finding efficient ways to process user requests and configuration of the user""s customized product.
Existing approaches to selling user-configurable products over a network are generally very inefficient at handling the configuring process. A first approach is to handle all the configuration-related computation on the merchant""s server; this is known as xe2x80x9cserver-side processing.xe2x80x9d With server-side processing, every time a user picks a product option or otherwise interacts with the configuration process, he or she interacts with the server, which receives the user""s input, processes the option selection, and sends an update of the currently existing configuration to the user. This approach works well if a small number of users are using the merchant""s server. If there are many users using the serverxe2x80x94which is, of course, what every merchant wantsxe2x80x94the frequent request from many users demanding computational resources from the server can cause the server to run extremely slowly and, in extreme cases, to stop functioning altogether. From the user""s point of view, this option is slow because of the repeated communications needed with the server to upload input and download results via the network, and the computation time required on the server for each operation.
A second approach for configuring customized products over a computer network is to have the merchant""s server do some of the processing and have the user""s computer, referred to as a client, do some of the processing. Such an approach relieves the server of some of its computational load, but the remaining load may still be too high for the server if the number of clients accessing the system is high. For the user, this approach may still be too slow because of the remaining server load, and because of the multiple communications over the network that must take place between the code processing information on the client and the code processing information on the server.
A third approach that has been tried for configuring customized products is to transfer essentially all of the computation involved to the client machine instead of the server. This xe2x80x9cclient-side processingxe2x80x9d approach increases server efficiency, because the server does very little computation and can thus handle a very large number of client requests without becoming overwhelmed. The computational load is instead shifted to a widely distributed network of clients that are accessing the server, each of which is probably lightly loaded. Although it increases efficiency, however, client-side processing has so far been applied inefficiently. Currently, when the user uses the client machine to access the server, the server downloads an independently executable module (for example, a Java applet, a browser plug-in or an Active X component) onto the client, so that the user can then use the executable module running on the client to configure the product. The executable modules, however, are usually large and take a long time for a user to download onto the client, especially if the client has a slow connection to the Internet. Even users with high-speed Internet access may have problems with the executable modules, because many network firewalls are designed to keep these modules from being downloaded onto the client system. In addition, the downloaded executables pose substantial browser compatibility problems. Active X modules, for example, cannot be run on Apple MacIntosh computers. Finally, if the merchant makes any changes to their configuration process, a new module must be downloaded every time the process changes.
Because of the disadvantages of present implementations of client-side processing, there is thus a need in the art for an apparatus and process that allows a user to configure a customized product over a computer network. The apparatus and process preferably exploit the benefits of client-side processing while avoiding the downfalls of present approaches.
The present invention provides a process for configuring a product using a server and a client connected by a computer network, wherein the product has multiple possible configurations, and wherein each configuration is defined by a set of standard attributes and a set of optional attributes. The process comprises receiving from the client a request for a base configuration comprising the set of standard attributes, transmitting to the client the standard attribute set for the base configuration, and transmitting to the client a plurality of Web pages containing an option data set including all possible optional attributes and a set of commands, the set of commands being executed on the client and allowing a user to select the set of optional attributes using the client. The present invention also provides an apparatus for configuring a product using a computer network, wherein the product has multiple possible configurations, and wherein each configuration defined by a set of standard attributes and a set of optional attributes. The apparatus comprises a server connected to the network, wherein the server comprises a processor, a memory, and a storage device, and wherein the processor and memory are operative with a program stored on the storage device to receive from a client a request for a base configuration comprising the standard set of attributes, transmit to the client the standard attribute set for the base configuration, and transmit to the client computer a plurality of Web pages containing an option data set including all possible optional attributes and a set of commands, wherein the set of commands is executed on the client and allows a user to select the set of optional attributes.